package moodle.Agentes;
import jamder.behavioural.*;
import jamder.Environment;
import jamder.roles.AgentRole;
import jamder.structural.*;
import java.util.List;
import java.util.Map;

import moodle.Agentes.actions.Companheiro.InformarAndamento;
import moodle.Agentes.actions.Companheiro.PesquisarData;
import jamder.agents.*;

public class CompanheiroAgente extends ModelAgent {
   //Constructor 
   public CompanheiroAgente (String name, Environment env, AgentRole agRole) {
     super(name, env, agRole);
     addBelief("crencasAprendizagem.pl", new Belief("crencasAprendizagem.pl", "String", ""));
   
     /*
     Action compararTurmaAc = new Action("compararTurmaAc", null, null);
     addAction("compararTurmaAc", compararTurmaAc);
     Action exibirMensagemApoioAc = new Action("exibirMensagemApoioAc", null, null);
     addAction("exibirMensagemApoioAc", exibirMensagemApoioAc);
     Action exibirMensagemReforcoAc = new Action("exibirMensagemReforcoAc", null, null);
     addAction("exibirMensagemReforcoAc", exibirMensagemReforcoAc);
     Action requisitaCoordenadorAcaoAc = new Action("requisitaCoordenadorAcaoAc", null, null);
     addAction("requisitaCoordenadorAcaoAc", requisitaCoordenadorAcaoAc);
   
     addPerceive("dificuldadeDiscussoes", exibirMensagemReforcoAc);
     addPerceive("acessoConteudoAluno", exibirMensagemApoioAc);
   
   	*/
     
     Action pesquisarDatas = new PesquisarData("pesquisarDatas", null, null);
     addAction("pesquisarDatas", pesquisarDatas);
     
     Action informarAndamentoAluno = new InformarAndamento("informarAndamento", null, null);
     addAction("informarAndamento", informarAndamentoAluno);
     
   }
   
   @Override
	protected void setup() {
		super.setup();
		
		Map<String, Action> actions = this.getAllActions();
		
		if(!actions.isEmpty()){
		
			for(Map.Entry<String, Action> results : actions.entrySet()){
				addBehaviour(results.getValue());
			}
		}
	}
   
   
   protected Belief nextFunction(Belief belief, String perception) {
	return funcaoProximoAprendizagem(belief, perception);
   }
   private Belief funcaoProximoAprendizagem(Belief belief, String perception) {
	return null;
   }
   
   

}

